#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2025/11/2 18:31
# @Author  : summer
# @Email   : 610658552@qq.com
# @File    : filter_wechat_openid.py
# @Software: PyCharm
# @Desc    : WechatOpenid过滤器（客户信息筛选）
import django_filters
from wechat.models import WechatOpenid


class WechatOpenidFilter(django_filters.FilterSet):
    """
    WechatOpenid过滤器：支持多条件组合查询
    - 公众号名称、姓名、手机号模糊搜索
    - 状态筛选、创建时间范围筛选
    """
    # 公众号名称模糊搜索（忽略大小写）
    wechat_name = django_filters.CharFilter(field_name='wechat_name', lookup_expr='icontains')
    # 客户姓名模糊搜索
    name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
    # 手机号精确匹配（手机号唯一，无需模糊）
    phone = django_filters.CharFilter(field_name='phone', lookup_expr='exact')
    # Openid精确匹配（Openid唯一）
    openid = django_filters.CharFilter(field_name='openid', lookup_expr='exact')
    # 状态筛选（0=关闭，1=开启）
    is_active = django_filters.NumberFilter(field_name='is_active')
    # 创建时间范围筛选（开始时间 >=）
    create_time_start = django_filters.DateTimeFilter(field_name='create_time', lookup_expr='gte')
    # 创建时间范围筛选（结束时间 <=）
    create_time_end = django_filters.DateTimeFilter(field_name='create_time', lookup_expr='lte')

    class Meta:
        model = WechatOpenid
        fields = ['wechat_name', 'name', 'phone', 'openid', 'is_active', 'create_time_start', 'create_time_end']